home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 11 / Cream of the Crop 11-1.iso / image / scrmach.zip / SETUP.MST < prev    next >
Text File  |  1996-01-02  |  10KB  |  291 lines

  1. '**************************************************************************
  2. '*                 The Screen Machine Runtime Setup
  3. '**************************************************************************
  4. '$INCLUDE 'setupapi.inc'
  5. '$INCLUDE 'mscpydis.inc'    ''System
  6. '$INCLUDE 'msdetect.inc'    ''Detects Avalilable Disk Space
  7.  
  8. ''Dialog ID's
  9. CONST WELCOME       = 100
  10. CONST ASKQUIT       = 200
  11. CONST EXITFAILURE   = 400
  12. CONST EXITQUIT      = 600
  13. CONST EXITSUCCESS   = 700
  14. CONST APPHELP       = 900
  15. CONST CHECK         = 2500
  16. CONST SMALLWIN      = 6300
  17. CONST RESTART       = 101
  18. CONST BADPATH       = 6400
  19. CONST DESTPATH1     = 7801
  20. CONST LEAVEALONE     = 7802
  21. CONST SPI_SETSCREENSAVEACTIVE=17
  22. CONST SPI_SETSCREENSAVETIMEOUT=15
  23. CONST SPIF_UPDATEINIFILE=1
  24. CONST SPIF_SENDWININICHAGE=2
  25. CONST SW_SHOWMAXIMIZED = 3
  26.  
  27. ''Bitmap ID
  28. CONST LOGO = 1
  29.  
  30. GLOBAL SizeReq&  '' Total Disk Size required for installation
  31.  
  32. ''File Types
  33. GLOBAL WinDir$
  34. GLOBAL WinSysDir$
  35. GLOBAL WinSys32Dir$
  36. GLOBAL WINDRIVE$    ''Windows Drive Letter.
  37. GLOBAL CHECKSTATES$
  38. GLOBAL MinorVer%
  39. GLOBAL DEST2$        ''Default destination directory.
  40. GLOBAL DEST3$
  41. GLOBAL REDO$
  42.  
  43. DECLARE SUB Install
  44. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  45. DECLARE FUNCTION SystemParametersInfo LIB "user.exe" (uAction%, uParam%, lpvParam&, fuWinIni%) AS INTEGER
  46. DECLARE FUNCTION ShowWindow LIB "User"(hWnd%,iShow%) AS INTEGER
  47. DECLARE FUNCTION pmDeleteGroup LIB "pmdde.dll" (Group$) AS INTEGER
  48. DECLARE FUNCTION pmShowGroup LIB "pmdde.dll" (Group$, Cmd%) AS INTEGER
  49. DECLARE FUNCTION pmDeleteItem LIB "pmdde.dll" (Group$) AS INTEGER
  50.  
  51. INIT:
  52.     hwnd% = HwndFrame()
  53.     junk% = ShowWindow(hwnd%,SW_SHOWMAXIMIZED)
  54.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  55.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  56.     
  57.     WIN32ENABLED% = 0
  58.     MajorVer% = GetWindowsMajorVersion()
  59.     MinorVer% = GetWindowsMinorVersion()
  60.     Processor% = GetProcessorType()
  61.     WinDir$ = GetWindowsDir()
  62.     WinSysDir$ = GetWindowsSysDir()
  63.     WinSys32Dir$ = WinDir$ + "system32"
  64.  
  65.     IF MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN
  66.     i% = DoMsgBox("Microsoft Windows version 3.10 or greater is required for this software.  Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  67.     END
  68.     END IF
  69.  
  70.     'Prevents installation on 286
  71.     IF Processor% < 3 THEN
  72.     i% = DoMsgBox("The Screen Machine requires a 386 or greater processor or emulator.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  73.     END
  74.     END IF
  75.  
  76.  
  77.     SetBitmap CUIDLL$, LOGO
  78.     SetTitle "The Screen Machine"
  79.  
  80.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  81.     IF szInf$ = "" THEN
  82.        szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  83.     END IF
  84.     ReadInfFile szInf$
  85.  
  86.     WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
  87.     DEST2$ = WINDRIVE$ + ":\SCRMACH"    
  88.        
  89.     SetCopyGaugePosition 85,120
  90. WELCOME:
  91.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  92.     IF sz$ = "CONTINUE" THEN
  93.        UIPop 1
  94.      ELSE
  95.     GOSUB ASKQUIT
  96.     GOTO WELCOME
  97.     END IF
  98.  
  99.  
  100. GETPATH:
  101.     SetSymbolValue "EditTextIn", DEST2$
  102.     SetSymbolValue "EditFocus", "END"
  103. GETPATHL1:
  104.     sz$ = UIStartDlg(CUIDLL$, DESTPATH1, "FEditDlgProc", APPHELP, HELPPROC$)
  105.     DEST2$ = GetSymbolValue("EditTextOut")
  106.  
  107.     IF sz$ = "CONTINUE" THEN
  108.         IF IsDirWritable(DEST2$) = 0 THEN
  109.             GOSUB BADPATH
  110.             GOTO GETPATHL1
  111.         END IF
  112.         UIPop 1
  113.     ELSEIF sz$ = "REACTIVATE" THEN
  114.         GOTO GETPATHL1
  115.     ELSEIF sz$ = "BACK" THEN
  116.         UIPop 1
  117.         GOTO WELCOME
  118.     ELSE
  119.         GOSUB ASKQUIT
  120.         GOTO GETPATH
  121.     END IF
  122.  
  123. LEAVEALONE:
  124.     
  125.        SrcDir$ = GetSymbolValue("STF_SRCDIR")
  126.        DEST3$ = DEST2$ +"\MEDIA"
  127.        REDO$ = UIStartDlg(CUIDLL$, LEAVEALONE, "FQuitDlgProc", 0, "")
  128.        IF REDO$ = "CONTINUE" THEN
  129.     CreateIniKeyValue WinDir$ +"system.ini", "boot", "SCRNSAVE.EXE", WinDir$ +"SCRMACH.SCR", cmoOverwrite
  130.     i%=SystemParametersInfo (SPI_SETSCREENSAVEACTIVE, 1, 0, SPIF_UPDATEINIFILE+SPIF_SENDWININICHANGE)
  131.     i%=SystemParametersInfo (SPI_SETSCREENSAVETIMEOUT, 180, 0, SPIF_UPDATEINIFILE+SPIF_SENDWININICHANGE)
  132.     CreateIniKeyValue WinDir$ + "control.ini", "ScreenSaver.Screen Machine", "PWProtected", "0", cmoOverwrite
  133.     CreateIniKeyValue WinDir$ + "control.ini", "ScreenSaver.Screen Machine", "Sound", "1", cmoOverwrite
  134.     CreateIniKeyValue WinDir$ + "control.ini", "ScreenSaver.Screen Machine", "Warnings", "0", cmoOverwrite
  135.     CreateIniKeyValue WinDir$ + "control.ini", "ScreenSaver.Screen Machine", "DelayTime", "3", cmoOverwrite
  136.     CreateIniKeyValue WinDir$ + "control.ini", "ScreenSaver.Screen Machine", "FastVideoCard", "1", cmoOverwrite
  137.     CreateIniKeyValue WinDir$ + "control.ini", "ScreenSaver.Screen Machine", "HoldImage", "100", cmoOverwrite
  138.     CreateIniKeyValue WinDir$ + "control.ini", "ScreenSaver.Screen Machine", "TrueColor", "1", cmoOverwrite
  139.     CreateIniKeyValue WinDir$ + "control.ini", "ScreenSaver.Screen Machine", "PlayVideoOne", "1", cmoOverwrite
  140.     CreateIniKeyValue WinDir$ + "control.ini", "ScreenSaver.Screen Machine", "TileOne", "1", cmoOverwrite
  141.     CreateIniKeyValue WinDir$ + "control.ini", "ScreenSaver.Screen Machine", "CenterOne", "0", cmoOverwrite
  142.     CreateIniKeyValue WinDir$ + "control.ini", "ScreenSaver.Screen Machine", "EventOne", "2", cmoOverwrite
  143.     CreateIniKeyValue WinDir$ + "control.ini", "ScreenSaver.Screen Machine", "EventSeven", "1", cmoOverwrite
  144.     CreateIniKeyValue WinDir$ + "control.ini", "ScreenSaver.Screen Machine", "FirstMovie", MakePath(DEST3$, "kite.avi"), cmoOverwrite
  145.     CreateIniKeyValue WinDir$ + "control.ini", "ImageGroupOne", "ImageOne", MakePath(DEST3$, "scene1.cmp"), cmoOverwrite
  146.     CreateIniKeyValue WinDir$ + "control.ini", "ImageGroupOne", "ImageTwo", MakePath(DEST3$, "scene2.cmp"), cmoOverwrite
  147.     CreateIniKeyValue WinDir$ + "control.ini", "ImageGroupOne", "EffectOne",  "16", cmoOverwrite
  148.     CreateIniKeyValue WinDir$ + "control.ini", "ImageGroupOne", "EffectTwo",  "16", cmoOverwrite
  149.     
  150.     
  151.     UIPop 1
  152.     GOTO CHECK
  153.     ELSEIF REDO$ = "EXIT" THEN   
  154.     CreateIniKeyValue WinDir$ +"system.ini", "boot", "SCRNSAVE.EXE", WinDir$ +"SCRMACH.SCR", cmoOverwrite
  155.     i%=SystemParametersInfo (SPI_SETSCREENSAVEACTIVE, 1, 0, SPIF_UPDATEINIFILE+SPIF_SENDWININICHANGE)
  156.     UIPop 1
  157.          GOTO CHECK
  158.     ELSE 
  159.     UIPop 1       
  160.     GOTO CHECK
  161. END IF
  162.      ''UIPop 1
  163. CHECK:
  164.  
  165.  
  166.  
  167. ''Prepare Copy list and check size
  168.  
  169.     ClearCopyList
  170.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  171.     DEST3$ = DEST2$ +"\MEDIA"
  172.  
  173.     AddSectionFilesToCopyList "Config Files", SrcDir$, Dest2$ 
  174.     AddSectionFilesToCopyList "Media Files", SrcDir$, Dest3$ 
  175.     AddSectionFilesToCopyList "Scr Files", SrcDir$, WinDir$
  176.     AddSectionFilesToCopyList "Sys Files", SrcDir$, WinSysDir$
  177.  
  178. ''  Check windrive diskspace
  179.     SizeReq& = GetCopyListCost ("","", "")
  180.     IF SizeReq& <> 0 THEN
  181.     GOSUB SMALLWIN
  182.     END
  183.     END IF
  184.  
  185. Install
  186.  
  187.  
  188.  
  189. QUIT:
  190.     ON ERROR GOTO ERRQUIT
  191.  
  192.     IF ERR = 0 THEN
  193.     dlg% = EXITSUCCESS
  194.     ELSEIF ERR = STFQUIT THEN
  195.     dlg% = EXITQUIT
  196.     ELSE
  197.     dlg% = EXITFAILURE
  198.     END IF
  199. QUITL1:
  200.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  201.     IF sz$ = "REACTIVATE" THEN
  202.     GOTO QUITL1
  203.     END IF
  204.     UIPop 1
  205.     END
  206.  
  207. BADPATH:
  208.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  209.     IF sz$ = "REACTIVATE" THEN
  210.         GOTO BADPATH
  211.     END IF
  212.     UIPop 1
  213.     RETURN
  214.  
  215.  
  216. ERRQUIT:
  217.     i% = DoMsgBox("An installation problem occured, please contact Owen Associates", "Setup Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  218.     END
  219.  
  220.  
  221. ASKQUIT:
  222.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  223.  
  224.     IF sz$ = "EXIT" THEN
  225.     UIPopAll
  226. ''        ERROR STFQUIT
  227.     END
  228.     ELSEIF sz$ = "REACTIVATE" THEN
  229.     GOTO ASKQUIT
  230.     ELSE
  231.     UIPop 1
  232.     END IF
  233.     RETURN
  234.  
  235. SMALLWIN:
  236.     sz$ = UIStartDlg(CUIDLL$, SMALLWIN, "FInfo0DlgProc", 0, "")
  237.     IF sz$ = "REACTIVATE" THEN
  238.     GOTO SMALLWIN
  239.     END IF
  240.     UIPop 1
  241.     RETURN
  242.  
  243. '**
  244. '** Purpose:
  245. '**     Performs all installation operations.
  246. '** Arguments:
  247. '**     none.
  248. '** Returns:
  249. '**     none.
  250. '*************************************************************************
  251. SUB Install STATIC
  252.  
  253.     SetRestartDir WinDir$
  254.     CopyFilesInCopyList
  255.  
  256.     sucess%=pmShowGroup ("The Screen Machine", 5)
  257.     sucess%=pmDeleteItem ("Screen Machine")
  258.     sucess%=pmDeleteItem ("Register")
  259.     sucess%=pmDeleteItem ("Read Me")
  260.     sucess%=pmDeleteGroup ("The Screen Machine")
  261.  
  262.  
  263.     CreateProgmanGroup "The Screen Machine", "", cmoVital
  264.     CreateProgmanItem "The Screen Machine", "Screen Machine", MakePath(DEST2$, "scrcfg.exe"), "", cmoOverwrite
  265.     CreateProgmanItem "The Screen Machine", "Register", MakePath(DEST2$, "scrreg.hlp"), "scrreg.ico", cmoOverwrite    
  266.     CreateProgmanItem "The Screen Machine", "Read Me", "WRITE.EXE" + " " + MakePath(DEST2$,"scrmach.wri"), "", cmoOverwrite
  267.    
  268. END SUB
  269.  
  270. '**
  271. '** Purpose:
  272. '**     Appends a file name to the end of a directory path,
  273. '**     inserting a backslash character as needed.
  274. '** Arguments:
  275. '**     szDir$  - full directory path (with optional ending "\")
  276. '**     szFile$ - filename to append to directory
  277. '** Returns:
  278. '**     Resulting fully qualified path name.
  279. '*************************************************************************
  280. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  281.     IF szDir$ = "" THEN
  282.     MakePath = szFile$
  283.     ELSEIF szFile$ = "" THEN
  284.     MakePath = szDir$
  285.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  286.     MakePath = szDir$ + szFile$
  287.     ELSE
  288.     MakePath = szDir$ + "\" + szFile$
  289.     END IF
  290. END FUNCTION
  291.